.supui-progress {
    width: 100%;

    .supui-progress-outer {
        position: relative;
        box-sizing: border-box;
        border-radius: $border-radius;
        background-color: $gray-300;
        height: 100%;

        .supui-progress-inner {
            position: absolute;
            left: 0;
            top: 0;
            display: flex;
            justify-content: flex-end;
            align-items: center;
            height: 100%;
            border-radius: $progress-border-radius;
            line-height: 1;
            transition: $progress-bar-transition;

            .inner-text {
                color: $progress-bar-color;
                font-size: $progress-font-size;
                margin: 0 5px;
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }
        }

        .supui-progress-inner-active {
            &.supui-progress-inner {
                &:before {
                    position: absolute;
                    top: 0;
                    right: 0;
                    bottom: 0;
                    left: 0;
                    background: #fff;
                    border-radius: $progress-border-radius;
                    opacity: 0;
                    content: '';
                    animation: progressActive 2.4s cubic-bezier(0.23, 1, 0.32, 1) infinite;
                }
            }
        }
    }

    @each $key,
    $val in $theme-colors {
        .color-#{$key} {
            background-color: $val;
        }
    }
}

@keyframes progressActive {
    0% {
        width: 0;
        opacity: 0.1;
    }

    20% {
        width: 0;
        opacity: 0.5;
    }

    100% {
        width: 100%;
        opacity: 0;
    }
}